home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / bytjl86b.arc / PCRACK.BAS < prev    next >
BASIC Source File  |  1985-07-12  |  2KB  |  64 lines

  1. 1000 REM -------------------------------------
  2. 1010 REM PROGRAM PCRACK.BAS IN MICROSOFT BASIC
  3. 1020 REM -------------------------------------
  4. 1030 REM    PROGRAM USAGE NOTES
  5. 1040 REM    (1) USE CONSISTENT PHYSICAL UNITS
  6. 1050 REM    (2) NUMBER OF ELEMENTS <= 30
  7. 1060 REM -----------------------------------
  8. 1070 DEFINT I-N
  9. 1080 OPTION BASE 1
  10. 1090 DIM A(30,30),DY(30)
  11. 1100 REM --------------------------------- READ BASIC MODEL PARAMETERS
  12. 1110 INPUT "CRACK PRESSURE, CRACK LENGTH, NUMBER OF ELEMENTS";P,CL,N
  13. 1120 W=CL/(2!*N)
  14. 1130 INPUT "MATERIAL PROPERTIES - G,PR";G,PR
  15. 1140 REM ----------------------------------------------- SET CONSTANTS
  16. 1150 PI=3.14159
  17. 1160 CON=-G/(PI*W*(1!-PR))
  18. 1170 REM --------------------------- GAUSS-SEIDEL ITERATION PARAMETERS
  19. 1180 TOL= .00001
  20. 1190 ITMAX=2*N
  21. 1200 OMEGA=1.3
  22. 1210 REM -------------------------- INITIALIZE DY AND COMPUTE A MATRIX
  23. 1220 FOR I=1 TO N
  24. 1230      DY(I)=0!
  25. 1240           FOR J=1 TO N
  26. 1250            A(I,J)=CON/(4!*(J-I)^2 - 1!)
  27. 1260          NEXT J
  28. 1270 NEXT I
  29. 1280 REM ------------------- SOLVE EQUATIONS BY GAUSS-SEIDEL ITERATION
  30. 1290 FOR NUM = 1 TO ITMAX
  31. 1300      ERRMAX=0!
  32. 1310           FOR I=1 TO N
  33. 1320            TEMP=0!
  34. 1330             FOR J=1 TO N
  35. 1340                  TEMP=TEMP+A(I,J)*DY(J)
  36. 1350             NEXT J
  37. 1360            TEMP=(P-TEMP)/A(I,I)
  38. 1370            DY(I)=DY(I)+OMEGA*TEMP
  39. 1380            ERRI=ABS(TEMP)
  40. 1390            IF ERRI > ERRMAX THEN ERRMAX=ERRI
  41. 1400           NEXT I
  42. 1410      IF ERRMAX <= TOL THEN GOTO 1460
  43. 1420      PRINT USING"ITERATION, MAXIMUM ITERATE ## #.######";NUM;ERRMAX
  44. 1430 NEXT NUM
  45. 1440 PRINT "ITERATION PROCESS DID NOT CONVERGE AFTER";ITMAX;" ITERATIONS!"
  46. 1450 STOP
  47. 1460 REM ----------------------------------------------- PRINT RESULTS
  48. 1470 PRINT "ELEM CRACK OPENING CRACK OPENING COMPUTED STRESS"
  49. 1480 PRINT "     (NUMERICAL)   (ANALYTICAL)"
  50. 1490 DELB=CL/N
  51. 1500 X=-(CL+DELB)/2!
  52. 1510 B=CL/2
  53. 1520 CON=2!*(1!-PR)*P*B/G
  54. 1530 FOR I = 1 TO N
  55. 1540      SIGYY=0!
  56. 1550           FOR J = 1 TO N
  57. 1560            SIGYY=SIGYY+A(I,J)*DY(J)
  58. 1570           NEXT J
  59. 1580      X=X+DELB
  60. 1590      DD=CON*SQR(1!-(X^2/B^2))
  61. 1600 PRINT USING" ##    ##.####      ##.####  ######.#";I;DY(I);DD;SIGYY
  62. 1610 NEXT I
  63. 1620 END
  64. 0      DD=CON*SQR(1!-(X^2/